home *** CD-ROM | disk | FTP | other *** search
- Subject: v18i023: Mail user's shell version 6.4, Part01/19
- Newsgroups: comp.sources.unix
- Sender: sources
- Approved: rsalz@uunet.UU.NET
-
- Submitted-by: Dan Heller <island!argv@sun.com>
- Posting-number: Volume 18, Issue 23
- Archive-name: mush6.4/part01
-
-
-
- [ MUSH is a mail program. It runs with SunTools and therefore replaces
- MailTool. It runs under Curses, and can emulate GNU Emacs rmail, and
- it has a line-oriented mode that resembles tcsh. It also emulates
- UCBMail. Dan says this release has no known outstanding bugs.
- Is this the ultimate mail program? I dunno, but it's probably
- big enough to be close. --r$ ]
-
- [ Please read the file "PACKNOTES." It's probably worthwhile to get
- in the habit of scanning for that file as well as README files. --r$ ]
-
- [ I am out of town the rest of the week. If something blows up while this
- is being automatically posted, sorry. --r$ ]
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 1 (of 19)."
- # Contents: MANIFEST PACKNOTES README README-6.1 README-6.2 README-6.3
- # README-6.4 check.pr coffee.cup.pr cycle.pr dn.arrow.pr envelope.pr
- # glasses.pr options.h up.arrow.pr write.pr
- # Wrapped by rsalz@papaya.bbn.com on Mon Mar 13 19:25:05 1989
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'MANIFEST' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'MANIFEST'\"
- else
- echo shar: Extracting \"'MANIFEST'\" \(2415 characters\)
- sed "s/^X//" >'MANIFEST' <<'END_OF_FILE'
- X File Name Archive # Description
- X-----------------------------------------------------------
- X Gnurc 2
- X MANIFEST 1
- X Mailrc 2
- X PACKNOTES 1 1 Warnings about long lines, etc
- X README 1
- X README-6.0 2
- X README-6.1 1
- X README-6.2 1
- X README-6.3 1
- X README-6.4 1
- X addrs.c 15
- X advanced.mushrc 3
- X bind.c 9
- X bindings.h 2
- X check.pr 1
- X cmd_help 11
- X coffee.cup.pr 1
- X commands.c 13
- X config.h-dist 2
- X curs_io.c 6
- X curses.c 12
- X cycle.pr 1
- X dates.c 4
- X dn.arrow.pr 1
- X doproc.c 5
- X edit_menu.c 2
- X envelope.pr 1
- X execute.c 3
- X expr.c 3
- X file.c 5
- X fkeys.c 7
- X folders.c 7
- X glasses.pr 1
- X hdr_panel.c 2
- X hdr_procs.c 3
- X hdrs.c 9
- X help.c 4
- X init.c 7
- X lock.c 2
- X loop.c 14
- X macros.c 4
- X mail.c 16
- X mail.icon.1 2
- X mail.icon.2 2
- X main.c 4
- X main_panel.c 4
- X makefile.bsd 2
- X makefile.sun 2
- X makefile.sys.v 2
- X makefile.xenix 2
- X misc.c 8
- X msgs.c 11
- X mush.1.1 19 (part 1)
- X mush.1.2 18 (part 2)
- X mush.1.3 17 (part 3)
- X mush.h 10
- X options.c 4
- X options.h 1
- X pick.c 6
- X print.c 3
- X rite.c 3
- X sample.mushrc 3
- X select.c 6
- X setopts.c 8
- X signals.c 5
- X sort.c 3
- X strings.c 5
- X strings.h 2
- X tool.c 3
- X tool_help 10
- X up.arrow.pr 1
- X viewopts.c 6
- X write.pr 1
- END_OF_FILE
- if test 2415 -ne `wc -c <'MANIFEST'`; then
- echo shar: \"'MANIFEST'\" unpacked with wrong size!
- fi
- # end of 'MANIFEST'
- fi
- if test -f 'PACKNOTES' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'PACKNOTES'\"
- else
- echo shar: Extracting \"'PACKNOTES'\" \(85 characters\)
- sed "s/^X//" >'PACKNOTES' <<'END_OF_FILE'
- X
- XFile "mush.1" was split because of its size; to create it, do
- X cat mush.1.? >mush.1
- END_OF_FILE
- if test 85 -ne `wc -c <'PACKNOTES'`; then
- echo shar: \"'PACKNOTES'\" unpacked with wrong size!
- fi
- # end of 'PACKNOTES'
- fi
- if test -f 'README' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'README'\"
- else
- echo shar: Extracting \"'README'\" \(14815 characters\)
- sed "s/^X//" >'README' <<'END_OF_FILE'
- X/* @(#)README 2.5 (c) copyright 10/24/87 (Dan Heller) */
- X
- XAuthor:
- X Dan Heller
- X
- XNetwork addresses:
- X island!argv@sun.com dheller@ucbcory.berkeley.edu
- X argv@garp.mit.edu
- X
- XWhen sending mail, mail to the addresses in the order given.
- X
- XContained is the source for "Mail User's Shell" (MUSH), a "Mail User
- XAgent" (MUA) that is designed to manage electronic mail on most UNIX
- Xsystems. That is, mush is used by users to read mail, sort it, edit
- Xit, delete it, or use it to act as an interface to send mail to others.
- XA Mail Transport Agent (MTA) is the program which mush communicates with
- Xthat actually -delivers- mail.
- X
- XRedistribution of this code is permitted as long as all copyright notices
- Xremain intact and all other identifying notices remain in the code and
- Xin the binary. This includes message headers on outgoing mail and the
- Xstartup message. Future releases will extract the release version from
- Xthe message headers of mush-originated messages to aid in implementing
- Xfeatures and providing backwards compatibility with previous versions.
- X
- XWith that out of the way...
- X
- XMush runs on various flavors of unix. To build mush, you should identify
- Xwhich unix you are running:
- X
- X Sun (all versions from 2.0 and higher).
- X BSD (versions 4.2 and up)
- X System-V / Version 7 / System III (Bell Labs)
- X Xenix (this might be tricky)
- X
- XYou will need to copy "config.h-dist" to config.h and edit it to reflect
- Xthe system dependencies described there. These consist of "compile-time
- Xdefinitions and macros."
- X
- XWhen it comes to "compile-time definitions", you may use one of two methods:
- X
- X #define DEFINITION /* in the config.h file */
- X -DDEFINITION /* in your makefile */
- X
- XIf the definition is of the form MACRO="string", then use:
- X -DMACRO=string
- X #define MACRO string
- X
- X---------------
- XWhich makefile to use:
- X
- XIf you are on a Sun Workstation:
- X
- X makefile.sun applies only to suns and creates a binary called "mush."
- X If the binary ends in "tool", then the graphics (suntools) mode will be
- X used by default on invocation. Otherwise, you must specify -t for
- X toolmode on sun workstations. The SUNTOOL define must is in the
- X makefile.sun in order to compile the suntools version. You don't need
- X to be running sunview; old sunwindows (2.0+) may be used.
- X
- X If you know that you're not going to use the suntools mode then you
- X should use makefile.bsd so that SUNTOOL won't be defined and unnecessary
- X files not be compiled so the binary will be made smaller.
- X
- XIf you are on a BSD UNIX machine:
- X
- X You should use the makefile.bsd makefile.
- X
- XIf you are using XENIX:
- X
- X The files makefile.x286 and makefile.x386 were created especially for
- X XENIX machines. makefile.x286 is for Intel's 80286 processor and the
- X makefile.x386 is for the 80386 processor. The xenix makefiles are
- X tuned for SCO's version of xenix. This does not mean that it won't
- X work under other xenix versions -- however, some changes may have to
- X be made by hand. If your xenix release is sco-xenix 2.2 or higher
- X then you must define USG. The libraries to use may be -ltinfo instead
- X of -lcurses -ltermlib. This is because the curses package may use
- X termio instead of the sgtty data structure. If you want to use termio
- X anyway, even if you're on an older xenix system (that supports termio),
- X then you may define USG anyway.
- X
- XIf you are on a system-v Bell labs machine:
- X
- X makefile.sys.v is for unix machines that are not running any flavor of
- X BSD and probably running a system-v flavor of unix -- this defines USG
- X so that termio will be used.
- X
- XWhen you decide on an appropriate makefile, _copy_ it to a new file called
- XMakefile.
- X---------------
- X
- XYour Mail Transport Agent:
- XSendmail:
- X Mush was originally designed to use sendmail as the Mail Transport Agent.
- X However, other MTA's will work. The MTA you use should be defined in
- X config.h under the MAIL_DELIVERY macro define. By default,
- X /usr/lib/sendmail -i
- X is used -- the option, -i, tells sendmail not to accept "." on a line
- X by itself as an end-of-file marker. This has been bosleted by "-oi",
- X but "-i" still works and is backwards compatible with older sendmails.
- X
- XDelivermail:
- X Some mailers such as delivermail and MMDF use special strings to separate
- X messages stored in a folder. Older delivermail versions would use "^C".
- X Whatever your system uses, if it is NOT "From " (just the first 5 chars
- X on a line matching "From "), then this string should be defined in
- X config.h with the MSG_SEPARATOR macro.
- X
- XMMDF:
- X NOTE: MMDF sites can define MMDF and not worry about MSG_SEPARATOR. See
- X config.h-dist if you run MMDF.
- X Since MMDF can deliver users' mail in their home directories, there is
- X a new define to specify this option: -DHOMEMAIL
- X Since MMDF uses its own libraries to do file locking, you should add the
- X appropriate library to the LIBS list in your makefile.
- X
- XAll others:
- X Chances are, your MTA uses the "From " format to separate messges in
- X a folder. This includes, /bin/mail, rmail, smail, execmail, and so on.
- X Unless you *know* otherwise, assume this to be the case with your MTA.
- X
- X If no MSG_SEPARATOR is specified, what mush looks for is a pattern of
- X From <string> <date format>
- X The "string" is usually the return address of the sender and the date
- X format is supposed to be in ctime(3) format. Even still, some MTAs
- X don't conform completely to this standard and vary slightly in
- X implementation. The function load_folder() (which reads in messages)
- X contains a scanf which looks for this format to verify that this is
- X indeed a new message being scanned. If you install mush and find that
- X you are entering a shell, but mush indicates there are no messages in
- X the folder, it could be that you have a weird "From " line format and
- X the scanf() call needs to be either modified or removed.
- X
- X#defines specifically for your MTA:
- X
- XOLD_MAILER:
- X Some MTA's, especially older ones like /bin/mail or execmail (xenix), do
- X not conform to RFC822 and provide the required headers: From: and Date:.
- X To remedy, either #define OLD_MAILER in config.h or add the -D option
- X OLD_MAILER in the appropriate makefile: -DOLD_MAILER. What this does is
- X make sure that there is a From: and Date: header in outgoing messages and
- X in folders (such as "set record"). Sendmail should not define this.
- X
- XUUCP:
- X If your machine talks to other computers via uucp _and_ you have the
- X macro OLD_MAILER defined, then you may want to define UUCP. This will
- X change the From: line to have your return address look like "host!user"
- X rather than "user@host" (which is the default). If you don't have
- X OLD_MAILER defined, this define does nothing.
- X
- XNO_COMMAS:
- X If your mailer does *NOT* like commas between addresses (pre-3.0 smail,
- X xenix and sys-v machines), then you should define NO_COMMAS. Otherwise,
- X you will get mailer-daemon [type] messages back when trying to send mail
- X to multiple users. Sendmail should not define this.
- X
- XVERBOSE_ARG:
- X If your mailer does NOT have a verbose option, then you should not have
- X VERBOSE_ARG defined. Otherwise, define it to be whatever the verbose
- X argument is for your mailer. The default is -v.
- X
- XMETOO:
- X Sendmail uses the -m argument to say, "metoo" -- when sending to mailing
- X lists, normally sendmail will send mail to mailing lists, but if you're
- X in that list, you are excluded from getting your own mail. However, if
- X you have the variable metoo set with your variables, then the METOO
- X argument is passed to sendmail to say, "I know I'm on this mailing list,
- X but send me a copy of my message even tho I sent it." For sendmail, this
- X is -m. If your mailer uses something else, then define METOO_ARG in the
- X config.h file. If you don't have it (sys-v), then this should not be
- X defined.
- X
- X---------------
- XSignals:
- XSIGRET:
- X When signals occur in unix, the program can identify a function to be
- X called whenever a specific signal interrupts the process. That function
- X returns one of two types in unix: int and void. Because the return value
- X of this function is always ignored, many unix systems are converting
- X their definition of this function from int to void. Mush has a define:
- X SIGRET which defines what the function should return.
- X
- X By default, SIGRET is defined to be "int".
- X
- X SunOS4.0 and some system-v machines and some xenix machines should
- X define SIGRET to be void. If you don't know, leave it alone. If
- X you guess wrong, you will get compiler "warnings" on lines that read:
- X on_intr();
- X off_intr();
- X
- X---------------
- X
- XVPRINTF:
- X This should be defined if your system has the vprintf functions. You
- X *have* these functions if you are running:
- X o system V
- X o xenix
- X o Sun release 3.0 or higher.
- X If you are still not sure, try the following command from your shell:
- X
- X % ar t /lib/libc.a | grep vprintf
- X
- X If you have it, you'll probably get something like
- X vprintf.o
- X vsprintf.o
- X as output. If you don't have it, you won't have any output. If your
- X main C-libraries are not in /lib/libc.a, then find where they are and
- X try the same command using that file. BSD machines do not have vprintf().
- X
- X---------------
- XThe sprintf() function:
- X If you *know* your system's sprintf returns a char *, you can remove the
- X #define sprintf Sprintf
- X in strings.h. Careful, not all BSD4.3 machines are alike! If you don't
- X know for sure, don't change this define.
- X
- X---------------
- XRegular expression defines:
- X If you have REGCMP, this should be defined so that you will use the
- X routines regcmp() and regex() as the regular expression composer/parser.
- X This is true for xenix and System-V Unix.
- X If you don't have REGCMP defined, then the routines re_comp() and re_exec()
- X are used (this is the default for mush).
- X
- X Note that some systems do not have either set of routines in the default
- X libraries. You must find the library to use and add it to the list of
- X libraries to use. If this is the case, your link will fail with the
- X errors that regex and re_comp are undefined functions. Read your man
- X page for regex(3) to find where to locate those libraries.
- X
- X---------------
- XThe select() function call:
- X Mush uses select() to implement macros, mappings and bindings. If your
- X system is a BSD system, then this is defined for you. However, with the
- X advent of hybrid bsd/sys-v systems, you may not be able to set BSD, but
- X you know you still have select() --for such systems, define SELECT in
- X your makefile or in config.h.
- X Newer xenix machines have this as so some system-v machines. If you don't
- X know, mush will use another function although not as optimum as select().
- X
- X---------------
- XThe default Mailrc startup file:
- X A default mailrc should be installed for new users. UCB mail's default
- X Mailrc works but no mailrc works also. The location of the default
- X file should be defined in config.h. To have no default mailrc, set the
- X default to /dev/null.
- X For sun systems, the default .mailrc (/usr/lib/Mailrc) does not work
- X very well because sun's Mail is not standard /usr/ucb/Mail.
- X For this reason, sun has not changed the default mailrc file and still
- X resides in /usr/lib/Mail.rc (note this has the "." whereas the other file
- X does not). The default config.h-dist reflects this.
- X
- X There is a supplied Mushrc file with mush, but this is only intended to
- X be used as an example of how to make mush look like ucbMail. This is a
- X _reduction_ in functionality and its usage is not encouraged.
- X
- X There is a Gnurc file which can aid in making mush's curses mode appear
- X to interact similar to gnu-emacs.
- X
- X---------------
- XHelp files:
- X The help files should be placed somewhere which is readable and accessible
- X by all. Failing to do so removes virtually the entire help facility's
- X ability to help anyone. There is a help file (cmd_help) for command help
- X (e.g. "command -?"), and the tool_help is for the graphics mode (Sun
- X workstations only). You should define where you want these files in
- X config.h so at runtime, they can be accessed without error.
- X
- X---------------
- X
- XYou should now be able to run make.
- X
- X---------------
- XMaintenance:
- X
- XIf you want to use dbx or any other debugger, or to use your default tty
- Xdriver, -e should be used as command line argument when you run the program.
- XWhat this flag does is prevents your echo from being turned off and leaving
- Xcbreak off, thus, keeping your tty in a sane state. This prevents the use
- Xof mappings and macros (map and map!). However, curses mode will automatic-
- Xally disable that mode. The -e flag is highly discouraged.
- X
- XIf you have memory allocation checking and validation (sun 3.0+ ?) then
- Xdefine M_DEBUG in the makefile (main.c) and add the library
- X/usr/lib/debug/malloc.o to the library list. Do this only if you are
- Xfind bugs in the program and suspect memory allocation errors. main.c
- Xhas the code which sets the debugging level according to the value of
- Xan environment variable. Because malloc-debugging is so cpu intensive,
- Xthe sunwindows program will get a SIGXCPU (cpu time limit exceeded)
- Xbecause of the large amount of opening and closing large pixrects and
- Xdevices. For this reason, SIGXPCPU is is caught in main.c.
- X
- XThe "warning" variable may be set (at runtime in your .mushrc or as
- Xa command: "set warning") to aid in finding runtime errors that aren't
- Xfatal.
- X
- XIf you ever get "Message N has bad date: <date string>" then note
- Xthe FORMAT of that date and edit dates.c. There are a number of
- X"sscanf"s which you can see match known date formats. Use them as
- Xexamples and insert the new date format you have.
- X
- XIf you ever add new variables, be sure to add them in viewopts.c and the
- Xman page.
- X
- XIf Mush ever coredumps and you are suspicious about whether or not
- Xyour folder (or spool directory) was removed. Or, if you were editing
- Xa letter, you should check for the files .mushXXXXXX and .edXXXXXXX.
- XMush won't die without telling you that it's dying and it will ask if you
- Xwant to save the .mushXXXXX file and if you actually want it to dump core.
- XNote that if you run mush from .suntools and there is a core dump, it
- Xprobably wants to do some IO with the console and may hang (not exit)
- Xbecause it doesn't know it can't talk to you.
- X
- XLast attempted, mush passed lint with a small number of errors indicating
- Xthat fflush, fclose and other similar functions returned values which
- Xwere always ignored. Sorry. I did not attempt lint on the suntools mode.
- XCurses doesn't lint very well, but even when you lint mush with CURSES
- Xdefined, it only complains about the unused curses globals in curses.h.
- END_OF_FILE
- if test 14815 -ne `wc -c <'README'`; then
- echo shar: \"'README'\" unpacked with wrong size!
- fi
- # end of 'README'
- fi
- if test -f 'README-6.1' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'README-6.1'\"
- else
- echo shar: Extracting \"'README-6.1'\" \(2540 characters\)
- sed "s/^X//" >'README-6.1' <<'END_OF_FILE'
- Xmush.h --
- X Truncated version ID.
- X
- X putchar() redefined fputc(c, stdout), fflush(stdout) because sys-v
- X isn't getting newlines when in curses mode. Isn't stdout supposed
- X to be line buffered? Does setting cbreak or something change this?
- X If this doesn't fix the problem for sys-v, add setbuf(stdout, NULL) at
- X the top of main.c, but that shouldn't be necessary (in fact, none of
- X this _should_ be necessary).
- X
- X SIGCHLD may cause infinite loop on pyramid's cpp 'cause they
- X define SIGCHLD to be SIGCLD. SIGCHLD is now only defined if it's
- X not already defined. If your system has SIGCHLD and SIGCLD defined
- X to _different values_ and you have SYSV defined, you may need to
- X check into this, but I doubt your system's that weird.
- X
- X glob_flags is now u_long (helps lint)
- X
- Xloop.c --
- X #ifdef SYSV around signal(SIGCHLD, ...) cuz sys-v doesn't really deal
- X with it correctly. Best just let it default and forget about it. Note
- X that sys-v'ers won't be able to watch processes die using "debug" anymore.
- X
- Xcommands.c --
- X Printenv() now takes an argument. "printenv _var_" will
- X print the varname and value rather than all env variables.
- X
- Xmail.c --
- X OLD_MAILER and OLD_MAIL now merged to OLD_MAILER. Too confusing
- X to have both and if either is used, both tend to be used. Refer to
- X README-6.0 for details.
- X
- Xprint.c --
- X yet more fixes for varargs.h people. It seems that pyramid (sys-v/BSD)
- X now have va_start() defined to have an open brace ( { ) and va_end()
- X has the closing brace ( } ). So, you can't have a starting block
- X be in between each call. Who writes that stuff?
- X
- Xstrings.c --
- X Sprintf() now supports varargs and has #ifdef VPRINTF checks.
- X As it turns out, some systems don't have IOSTRG either, but I'm not
- X really up to date on this one. If you have a problem with it, just
- X remove its reference in the routine and it should work anyway.
- X
- Xhdrs.c --
- X compose_hdr() should run faster now (thus, any display of headers:
- X 'h', 'z', etc...) should be faster due to the code no longer computes
- X the weekday name (Sun, Mon, etc..) unless specifically requested by %D
- X (in which it takes the same amount of time as before).
- X
- Xcurs_io.c/signals.c --
- X added new function scrn_line which reads a line of text from a line
- X on the curses screen for use by stdout. It seems that sys-v curses
- X package uses shorts instead of chars to represent each char on the
- X screen. I use #ifdef A_CHARTEXT to see if this applies to you.
- END_OF_FILE
- if test 2540 -ne `wc -c <'README-6.1'`; then
- echo shar: \"'README-6.1'\" unpacked with wrong size!
- fi
- # end of 'README-6.1'
- fi
- if test -f 'README-6.2' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'README-6.2'\"
- else
- echo shar: Extracting \"'README-6.2'\" \(2920 characters\)
- sed "s/^X//" >'README-6.2' <<'END_OF_FILE'
- Xmain.c --
- X New command line argument "-F file". The file is sourced after
- X the folder has been read in. There have been requests to allow
- X commands which manipulate messages to be in the .mushrc, but since
- X that can't be done without being able to expand possible shell
- X arguments such as "+folder", an additional source file can be
- X executed before IO to the user happens by specifying this filename.
- X If the flag given is "-F!", then the mush will exit once it is
- X finished with the commands in the file.
- X
- Xmain.c, mail.c, viewopts.c --
- X A new variable called "tmpdir" has been added. This path describes
- X the location for all temporary files that mush creates. If not set,
- X mush will use the user's home directory. If neither is accessible
- X and writable, then /tmp (defined in config.h) is used.
- X
- Xmisc.c --
- X when invoking a pager, sometimes cbreak was not getting set. It
- X wasn't easily reproducible because of a race condition set by a
- X system call.
- X
- Xpick.c --
- X There is a new option to the "pick" command called -ago. Now you
- X can pick messages relative to today's date.
- X pick -ago 2 weeks
- X will find all messages two weeks old. The + and - modifiers will
- X extend time searches:
- X
- X pick -ago +2 days
- X will find all messages from two days ago to current.
- X
- X pick -ago -1w
- X
- X will find all messages from one week ago and back. You can specify
- X days, weeks, months and years and the syntax is extremely simple.
- X
- X pick -ago 2 weeks 1 day
- X pick -ago 1d 2w
- X pick -ago 1 DAY, 2 WEEKS
- X pick -a 1d2w
- X
- X are all equivalent. Note that months map to 30.5 days so March may
- X be confusing.
- X
- X The -d option to pick used to specify that dates preceded by '-' meant
- X "on or before" and if there was no '-', then it defaulted to "on or after."
- X It was difficult to find messages on a specific date only. So now, the
- X change is that "on or after" is specified by preceding a '+' before the
- X date. thus,
- X
- X pick -d 5/2
- X
- X *used* to find messages dated on or after May 2. Now, it only finds
- X messages on May 2 only. To do messages on or after May 2, specify:
- X
- X pick -d +5/2
- X
- Xhelp.c --
- X help now sends output thru the internal pager in case the
- X help message is very long. pick -? may be the only problem, but now
- X it's set up to handle arbitrarily long help messages.
- X
- Xmail.c --
- X You can specify the internal pager use "~p internal" while editing
- X a message.
- X
- X Autosigning now precedes the signature file with "\n-- \n" for
- X compatibility with news and other programs.
- X
- Xexecute.c --
- X A "syntax" type error would cause xenix systems to incorrectly
- X evaluate the wait() loop. The change:
- X while ((pid = wait(&status) != -1) && ...
- X has been changed to:
- X while ((pid = wait(&status)) != -1 && ...
- X
- Xmush.1 --
- X The man page has been updated as well to reflect the above changes.
- END_OF_FILE
- if test 2920 -ne `wc -c <'README-6.2'`; then
- echo shar: \"'README-6.2'\" unpacked with wrong size!
- fi
- # end of 'README-6.2'
- fi
- if test -f 'README-6.3' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'README-6.3'\"
- else
- echo shar: Extracting \"'README-6.3'\" \(9662 characters\)
- sed "s/^X//" >'README-6.3' <<'END_OF_FILE'
- XThe file, "README" is always being updated for brand new users on how
- Xto install mush for the first time. It can be referenced for earlier
- Xinfo as well as previous README's. A new README-<versionID> file (like
- Xthis one) will accompany each new upgrade.
- X
- XFor those who wish to be on the mush-users mailing list, please
- Xsend requests to:
- X mush-users-request@garp.mit.edu
- XI do not maintain this list, so don't mail me.
- XThis mailing list discusses mush usage, internals, portability to new
- Xhardware or non-standard unix systems, future updates/enhancements,
- Xand exchange of general info. Since mush works on all flavors of
- Xunix from bsd to sys-v and has three different user interfaces, the
- Xgroup of subscribers is quite diverse. For those who are very
- Xinterested in influencing the X interface, now is the time to get
- Xyour opinions in for discussion before it's too late.
- X
- XNew compiler defines:
- X DOT_LOCK
- X Define this if you want mush to use .lock to lock your mbox for
- X updates. See very last section of this file for detailed info.
- X
- X UUCP
- X This should be defined if your MTA does not automatically create a
- X From: header *and* your machine talks to other computers via uucp
- X (probably true for default xenix/sys-v systems).
- X
- X NO_COMMAS
- X This should be defined if your mailer does *NOT* like commas
- X between addresses on its command line. Last I heard, smail is
- X like this as well as default xenix/sys-v mail transport agents.
- X (This used to be defined by OLD_MAILER.)
- X
- X Note: if your MTA is "smail", OLD_MAILER should _not_ be set, but
- X NO_COMMAS should be set. That is as of this release date.
- X
- X SIGRET
- X This is defined to be "int" by default. If your signal() returns
- X void, SIGRET should be defined to be "void". This mostly applies
- X to SVR3.
- X
- X For any of these defines, you do one of two things:
- X (UUCP used as example)
- X 1) add -DUUCP in your makefile
- X 2) In config.h, add a line which reads:
- X #define UUCP
- X
- X For SIGRET, use either "-DSIGRET=void" or "#define SIGRET void"
- X
- XNew variables:
- X realname (string)
- X Set to the user's real name by:
- X 1) The user's real name is gotten from the environment variable NAME.
- X 2) The gecos field in the password file
- X Once mush has been started, this name can only be reset by changing
- X the value of realname -- not by changing 1 or 2 above.
- X
- X hostname (string)
- X The hostname is automatically set by the system, but if circumstances
- X make this impossible or the hostname is wrong, the user can reset this.
- X See the manual under the VARIABLES section for more info.
- X Important Note to sys-v'ers who can't get their hostname from utsname(2)
- X (xenix, more?), the hostname should probably be set in the default Mailrc
- X defined in config.h. "set hostname=whatever"
- X
- X save_empty (boolean)
- X If set, folders which have all messages deleted are not removed on
- X updates or change folder commands. The folder is left at zero length.
- X Note, this does not affect the spool mailbox; it is never removed on
- X updates.
- X
- X date_received (boolean)
- X If set, message headers are printed with the date received rather than
- X the date sent. This affects the sorting command; when sorting by date,
- X this variable is checked.
- X
- XMisc:
- X Addresses that have long uucp paths from the sender would be so long
- X that the "important" part of the path --which includes the sender's
- X login and machine name, found at the tail end of the address, would
- X be cut off. Such addresses are now shifted to the right if the whole
- X address cannot fit in the specified padding requested by the user.
- X This affects the hdr_format modifiers %a and %f. If the addresses
- X are shorter than the specified width, there is no change:
- X set hdr_format = "%11a" # show no more than 11 chars of address
- X If the address is:
- X sun!island!argv
- X then the result will be:
- X island!argv
- X (previously, you'd get "sun!island!" losing the "argv" at the end.)
- X
- X Initialization file now understands:
- X if -e filename
- X and
- X if -z filename
- X to test to see if a filename (folder) exists (-e) or zero-length (-z).
- X
- X Added SAVED flag to message status. If a message is saved,
- X this flag is set rather than the DELETE flag. Messages which
- X have been saved are marked with an 'S' in the status field.
- X All commands which deal with message status have been modified
- X to support this new flag (sort, headers (-H:s), etc...)
- X
- X $cdpath can now be read from the environment. that is, it understands
- X the ':' as a path separator now.
- X
- X ":p" can be used to select "preserved" messages. This adds to the
- X list of :c commands which select messages of status "c". headers -?
- X for more info.
- X
- Xmain.c --
- X fixed up helpfile assignments for toolmode and removed useless
- X warning messages.
- X
- X ignore sigpipe in main() instead of in do_loop(). This fixes the
- X bug where you mail someone without entering the shell and ~p to
- X page your message.
- X
- Xmail.c --
- X Some mailers don't add the From: header. Previous versions of
- X mush would add for these machines:
- X From: login
- X Now, the user's real name is added in parens. Also, if UUCP is
- X defined, the From: line will look like:
- X From: host!user (Real Name)
- X If uucp is not defined:
- X From: user@host (Real Name)
- X This is mostly for uucp systems, so when the user mails to remote
- X sites, the From: line should be correct for accurate replies.
- X
- X If fork() failed in toolmode, the error message is no longer
- X overwritten before the user knew the mail couldn't not be sent.
- X
- X ~? now uses the internal pager so the help doesn't scroll off the screen.
- X
- X The command: "r addr" to reply to a message and add a new address
- X at the same time no longer removes the last character in the first address
- X before adding the new address.
- X
- X If autosign has \n's or \t's embedded in the string, they are now
- X expanded to newlines and tabs respectively. This is also true for
- X using ~$variable to print a variable's value into a letter buffer.
- X For example, the command:
- X set autosign = "\Dan Heller\nisland!argv@sun.com"
- X will cause all outgoing letters to be signed with:
- X
- X --
- X Dan Heller
- X island!argv@sun.com
- X
- Xcurses.c --
- X fixed scrn_line() (screen-line: get a line from the screen) so
- X that the following expression is evaluated correctly:
- X changed:
- X if ((buf = mvinch(line, n) & A_CHARTEXT) == '\0')
- X to:
- X if ((buf[n] = (mvinch(line, n) & A_CHARTEXT)) == '\0')
- X
- Xloop.c --
- X disp_hist() (display history) no longer core dumps if the history
- X command was given from the curses mode using ':' and there was no
- X history created yet.
- X
- Xdoproc.c (suntools only) --
- X The save menu item would prompt to save in ~/mbox for both the
- X first and second menu items rather than just the first menu item.
- X The result was that you couldn't save to the file described by
- X the second menu item.
- X
- Xcommands.c --
- X save_msg() modified to support SAVED flag. Messages are not
- X deleted, but marked saved. When updating folder, keep_save is
- X checked, and if not set, saved messages are deleted.
- X
- Xmsgs.c --
- X changed lockf()'s last argument from 0 to 0L.
- X
- Xmisc.c --
- X Sprintf() (for SYSV) has been modified to correctly deal with
- X varargs. Sorry, the stuff in print.c still isn't, but someday...
- X Nevertheless, there are currently no bugs known or reported that
- X concern anything in print.c
- X
- X The internal pager now works with the -e flag (happy _now_ Dave?)
- X
- Xpick.c --
- X picking patterns no longer requires the pattern to be in quotes
- X if it contains spaces. You may now specify:
- X pick -f -i dan heller
- X This example will find messages from "Dan Heller" (-i ignores case).
- X
- X
- XWhat "dot-lock" is and why you may need it...
- X
- X When mush updates your mailbox, it needs to lock it so that if new
- X mail is being delivered at the same time, it will wait till mush
- X is done. Or, if the mail is there first, mush should wait before
- X attempting to lock the file. This should theoretically prevent new
- X mail from getting lost. But...
- X Different systems use different locking mechanisms. By default,
- X mush uses one of flock(), locking(), or lockf() (depending on your
- X system). Some systems use a file called the same name as the file
- X you're locking with an appended ".lock" at the end (some Xenix's use
- X /tmp/$USER.mlk).
- X If you define DOT_LOCK, mush will try to lock the mailbox using
- X first check for the .lock file. If it exists, it loops until it
- X goes away and then it creates it mode 600. Regardless of whether you
- X use dot-locking, mush will continue to try to use flock(), or whatever.
- X dot-locking requires mush to have write access to the directory where
- X your mailbox exists. Normally, this directory isn't writable by the
- X average user, so you may have to sgid mush to do this to the group id
- X of the owner of that directory. Mush will get the effective gid at the
- X beginning of the program and immediately reset it to your real gid until
- X the time it needs to lock the file occurs. It changes back to the sgid,
- X locks, then returns to normal. There shouldn't be a security problem.
- X If you don't know what I'm talking about here, ignore DOT_LOCK
- X as this is the first attempt at such locking methods and is likely
- X to change.
- X Another warning is that some MTA's don't even follow their own protocol.
- X System V, it has been reported, creates the .lock file without checking
- X to see if it exists (therefore ruining someone else's lock).
- X
- END_OF_FILE
- if test 9662 -ne `wc -c <'README-6.3'`; then
- echo shar: \"'README-6.3'\" unpacked with wrong size!
- fi
- # end of 'README-6.3'
- fi
- if test -f 'README-6.4' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'README-6.4'\"
- else
- echo shar: Extracting \"'README-6.4'\" \(16322 characters\)
- sed "s/^X//" >'README-6.4' <<'END_OF_FILE'
- X
- XNew features/bug fixes to Mail User's Shell (Mush) since version 6.3:
- X
- XFor general information about mush, comments, bug reports, etc:
- X Dan Heller <island!argv@sun.com>
- XExtra special thanx to Bart Schaefer <schaefer@ogccse.ogc.edu>
- Xfor his help in fixing some bugs, and adding some new features.
- X
- XThanx to Marc Rouleau <mer6g@virginia.acc.virginia.edu> for his
- Xwork on providing MMDF support.
- X
- XThe main README has been rewritten to be more easily read. someday,
- Xthis will be mostly replaced by a Configure file once I figure out
- XMetaconfig :-).
- X
- XSeveral "rc" files for demonstrating sample user configuration environments
- Xare provided. Each are documented, but the man page does not reference them.
- X
- XThe person responsible for the changes are indicated in []'s.
- X=========
- XA new command line option, -m mailbox-path, can reset the value of your
- Xmain (system) mailbox. Mush will treat this new mailbox as if it were
- Xyour /usr/spool/mail/$USER file. Read the man page to understand all
- Xthe implications of this.
- X[Dan Heller]
- X---------
- XThe variables, autosign2 and fortunates now take a new style of
- Xaddresses to specify an alternate signature or "fortune" program
- Xappendatures. One side effect of this is that you can have a "local"
- Xsignature and a remote signature simply by specifying "!hostname"
- Xin your autosign2 variable. (hostname is the name of your local
- Xhost). The old format is still supported, but the new syntax supports
- Xsome new funtionality. I set mine to:
- X
- X set autosign2 = "!island @berkeley.edu @mit.edu *schaefer root: \--dan"
- X
- XThis means that any mail I send to 1) anyone at island, 2) anyone at
- Xberkeley, 3) anyone at mit, 4) bart shcaefer, wherever he may be,
- Xand 4) root on my local machine only (this includes root@my-machine-name)
- Xwill be signed by my "alternate" signature. If any address on the
- Xrecipient list fails to satisfy these four matches, the mail will be
- Xsigned by my regular signature. More precisely, the syntax is:
- X
- XThe list of recipients, after alias expansion and comment removal, is
- Xthen scanned and the following patterns are matched against those addresses
- Xspecified in the autosign2 or fortunates variable according to these rules.
- X
- X user *user !host !path!name @dom.ain host!user
- X
- Xuser the user is on the local host only. user!localhost will also match.
- X*user the address matches regardless of the path to the user.
- X includes: user, user@host1, host2!user, ...!path!user
- X!host matches any user who resides on the specified host.
- X includes: ...!foo!bar!host!user
- X!host1!host2 just like above, but path is more specific:
- X includes: ...!foo!bar!host1!host2!user
- X@dom.ain matches any user whose destination host lies within the domain.
- X includes: ...!host.dom.ain.etc!user
- X[Dan Heller]
- X---------
- XVariable modifiers :t and :h are now supported. If a variable expands
- Xto a filename, the head of the path (up to the filename itself) is
- Xreturned for :h, and the title of the path (filename itself) is returned
- Xfor :t. Thus, you could set your prompt:
- X a fo 'fo \!*; set prompt = "! [$thisfolder:t] "'
- XWhenever you change folders, your prompt will tell you the name
- Xof the folder you're in.
- X[Bart Schaefer]
- X---------
- XThe alternates command (alts) now supports the added feature of
- Xalternate login names as well as paths to login names. If you
- Xhave another login name on the local machine or on a remote machine,
- Xspecify this in the alts command as "!login" or "!path!to!login"
- XThe point is, precede the login name or path by a !.
- X[Dan Heller]
- X---------
- XIf someone else updates your folder while you're in it, mush will
- Ximmediately modify your folder to reflect the current version of
- Xthe folder. You would therefore lose any changes you made, so be
- Xsure that no one else uses the same folder you do while you're
- Xusing it.
- X[Dan Heller]
- X---------
- XArguments to mush may be "clumped" together when appropriate... Like
- X% mush -CS
- XAlso, there are now long names for arguments... such as
- X% mush -shell -curses
- XFinally, it is now possible to specify blind-carbon recipients on the
- Xcommand line, with the -b (-blind) option.
- X[Bart Schaefer]
- X---------
- XCommand parsing has been improved. Notably, handling of commands appearing
- Xto the right of `|' or `;' separators has been made uniform with that for
- Xcommands at the beginning of a line. Variable expansions in commands to the
- Xright of a `;' now take place _after_ the command to the left has been run.
- XQuoting of separators (e.g. '|' or ";") also works properly, but you still
- Xcan't generate null arguments with empty quotes (sigh).
- XThis now allows you to do things like:
- X cmd cd 'cd \!*; set prompt = "[$cwd] "'
- Xwhereas it didn't used to before.
- X
- XAlso, message lists are now separated only from command names to the left,
- Xnot from other strings to the right. This means that
- X save 3 ../msg_three
- Xwill save message 3 in the file "msg_three" in the parent directory, rather
- Xthan attempting to save messages 3 and the current message in "/msg_three".
- XSimilarly, a command like
- X write12somefile
- Xwill be parsed as "write 12somefile" and will therefore save the current
- Xmessage in "12somefile" in the current directory.
- X[Bart Schaefer]
- X---------
- XThe tilde-escapes, ~c and ~b now work like ~t in that they append addresses
- Xspecified on the tilde line:
- X ~c root
- Xwill append the user root rather than replace the entire Cc list.
- X[Dan Heller]
- X---------
- XWhen replying to multiple messages, all the messages will be replied to
- Xat once rather than one at a time as it was before.
- X reply 2 4 6 -i 6 8
- Xwill reply to all the authors of messages 2 4 and 6 and include in the
- Xtext of the message the contents of messages 6 and 8.
- X[Dan Heller]
- X---------
- XWhen appropriate, the terminal settings for erase, word erase, line kill,
- Xetc. special characters are now examined BEFORE the mush defaults, so
- Xconflicts will now be resolved in favor of the stty settings. For example,
- Xthis allows the delete character (\177, ^?) to be defined as line kill;
- Xpreviously, mush would have interpreted ^? as character erase.
- X[Bart Schaefer]
- X---------
- XYou can now save a list of messages in a variable by piping mush
- Xcommands to the "set" command. For example,
- X
- Xmush> pick -f argv | set argv_msgs
- X
- XThe variable $argv_msgs will be a string which can be used as the
- Xmsg_list argument to other commands. So you can type: save $argv_msgs
- X[Dan Heller]
- X---------
- Xvariable testing can be done via "$?variable" --if the variable
- Xis set, then the string "1" is returned. Otherwise, "0" is.
- X[Dan Heller]
- X---------
- XIf-else-endif statements in the initialization file can now be nested.
- XThey also understand the $?variable syntax, e.g.,
- X if ! $?autoedit
- X set wrapcolumn=75
- X else
- X if ! $?editor
- X set editor=/usr/local/bin/emacs
- X endif
- X endif
- XNote that there is no "elseif" syntax, and the "else" must still be on
- Xa line by itself.
- X[Bart Schaefer]
- X---------
- XA new variable $thisfolder has been added. Its value is the full path name
- Xof the current folder. $thisfolder cannot be changed by the "set" command.
- XInstead, it changes automatically whenever a new folder is entered. For
- Xexample,
- X cmd fo 'folder \!*; set prompt="$thisfolder "'
- X
- XWhen initialization files are read (before a folder has been loaded),
- X$thisfolder is not set, so $?thisfolder can be used in a test around
- Xother commands that manipulate messages. Example:
- X if $?thisfolder
- X sort -d
- X pick -f argv | save +argv_msgs | d
- X endif
- X[Bart Schaefer]
- X---------
- XThe new variable $curses_help may be set to a list of curses command names.
- XThe key bindings for the commands in this list will be displayed in a menu
- Xformat on the last few lines of the curses screen. If $curses_help is set,
- Xbut not to a value, then a default list of commands is used. See the file
- Xconfig.h-dist for the default menu. Note that the commands listed in this
- Xvariable should be separated by spaces or tabs, not commas.
- X[Bart Schaefer]
- X---------
- XLinewrapping in composition mode is available through a new
- Xvariable, $wrapcolumn; set it to the last column in which you want
- Xcharacters to appear.
- X[Bart Schaefer]
- X---------
- XMacros ala vi are now available in three flavors: curses, line mode,
- Xand composition mode. See new commands, below.
- X[Bart Schaefer, Dan Heller]
- X---------
- XSupport for MMDF and for system mailboxes kept in each user's home
- Xdirectory have been added. #define MMDF and/or HOMEMAIL in config.h.
- X[Marc Rouleau]
- X=========
- X
- XNew commands and command options:
- X=========
- XA new command, edit, has been introduced to allow you to edit
- Xmessages. See the man page, but it's pretty straightforward.
- X[Dan Heller]
- X---------
- XThe command, pipe, allows you to invoke unix commands with
- Xmessage text as standard input. For example,
- X
- Xmush> pipe patch
- X
- Xsends the current message to "patch". See the man page for details.
- X[Bart Schaefer & Dan Heller, instigated by Marc Rouleau]
- X---------
- XThe write/save/copy commands now have the options -a and -s. This
- Xmeans, save the message according to the author or subject (respectively).
- XSo, if you type "save -s" and the subject of the message was "READ ME"
- Xthen the message will be saved in a file called "READ_ME". Note that
- Xspaces and slashes are converted to underscores.
- X
- XA directory name may be specified:
- X
- Xmush> save -a $folder
- X
- XThen mush will save the current message to the file described by the
- Xauthor of the message's login name in your folder directory.
- X[Dan Heller]
- X---------
- XThe mail/reply/replyall commands now have options -b and -c to specify
- Xblind-carbon and carbon-copy recipients. These are most useful in
- Xconjunction with the -f option, because forwarding does not allow the
- Xuse of the ~c and ~b escapes (unless the -e option was given).
- X[Bart Schaefer]
- X---------
- XThe -f option to mail now forwards mail in such a way as to retain all
- Xthe original headers of the message -- "Resent-" fields are added by
- Xmush according to RFC822. Note that this makes "replying" to messages
- Xthat have been forwarded potentially tricky. The reply_to_hdr variable
- Xmay specify headers to build a reply-path, yet the headers may be
- Xinconsistent from message to message. It is advised to set reply_to_hdr
- Xto be "From:" when trying to reply to forwarded messages to heighten the
- Xprobability of a correct return address to the _original_ author. Otherwise,
- Xthe return address will probably be that of the forwarder.
- X[Dan Heller]
- X---------
- XThe previously undocumented "flags" command has become documented and
- Xhas picked up some new options. See the man page for details.
- X[Dan Heller]
- X---------
- XA new command "eval" has been added, analogous to the sh and csh "eval".
- X[Bart Schaefer]
- X---------
- XCommands bind-macro, map, and map! have been added for creating macros.
- XSee the descriptions of these commands in the man page, and the new man
- Xpage section on MACROS. New curses functions for each of these have
- Xalso been created. Currently, the unmap and unmap! commands can only be
- Xused from line mode; "unbind" will remove curses mode macros.
- X[Dan Heller, Bart Schaefer]
- X---------
- XAnother new variable, $nonobang, lets you turn off those annoying
- X"event not found" messages without shutting history off altogether.
- XWhen nonobang is set, failed history references simply do not expand;
- Xthe effect is similar to csh's "nonomatch" for filename expansions.
- X[Bart Schaefer]
- X---------
- XThe undigest command disassembles digests into the set of messages which
- Xcomprises it. The -m option will merge these messages into the current
- Xfolder. Otherwise, if a filename is specified, a new folder is created
- Xand the user can change folders to read the messages separately.
- XIf a message list is specified, each digest is disassembled to the same
- Xfilename (if given). If no filename is given and the user did not request
- Xa merge, then a temporary file is made.
- X[Dan Heller, Bart Schaefer]
- X---------
- Xdead.letter is now saved in mbox format.
- X[Dan Heller]
- X---------
- Xuucp-style mbox formats with From uucp and >From lines are now collapsed
- Xinto the "correct" From line format. All the >From lines are removed
- Xand the mailbox is stored in the format permenantly. This does not apply
- Xto read-only folders.
- X[Dan Heller]
- X=========
- X
- XChanges to old commands/functions/variables:
- X=========
- XCurses functions referenced by the "bind" command no longer have two-word
- Xnames. "delete list", "mail flags", etc. have been replaced by hyphenated
- Xcommands "delete-list", "mail-flags", etc. The "search" commands have
- Xchanged from "search down" to "search-back", "search up" to "search-next"
- Xand "search cont" to "search-again", to avoid confusion with "up" and "down"
- Xreferring to message number rather than to screen direction. "show hdr" is
- Xno longer a recognized name.
- X[Bart Schaefer, Dan Heller]
- X---------
- XThe show_deleted variable now controls whether or you you can display
- Xdeleted messages in addition to whether to display their headers for a
- Xheaders command. All other mush commands affect all messages regardless
- Xof whether or not they are deleted. Commands that wish to not affect
- Xdeleted messages should prepend the command with "* {`:d`} |"
- X[Dan Heller]
- X---------
- XThe "screen-back" curses function (default 'Z') now places the current
- Xmessage at the bottom of the screen instead of the top. Both the
- X"screen-back" and "screen-next" (default 'z') commands will leave the
- Xcurrent message unchanged if it is still visible on the new screen.
- X[Bart Schaefer]
- X---------
- XThe "next-msg" curses function (default 'j') will now scroll downward
- Xfrom the bottom of the page whenever there are blank lines available
- Xon the screen. It stops when the last message or the bottom of the
- Xscreen is reached.
- X[Dan Heller]
- X---------
- XThe "saveopts" command now saves all bindings and macros, as well as
- Xvariable settings, aliases, etc. Note that this also saves the system
- Xdefaults, too. Using saveopts will probably create very large .mushrc
- Xfiles.
- X[Bart Schaefer]
- X---------
- Xecho now understands -h and -p flags. When -h is used, the arguments
- Xare treated as if you changed your header format to the argument(s) and
- Xthe current message header is printed using those formatting args. The
- X-p flag is as if you changed your prompt to the given arguments. This
- Xallows the user to do things like:
- X echo -h This message is from %n and was dated on %d.
- X echo -p There are %u unread messages in folder %f.
- X[Dan Heller]
- X---------
- Xreply_to_hdr now understands From_ to mean the colon-less From line.
- XNow, you can say:
- X set reply_to_hdr = "reply-to, return-path, sender, from_"
- Xpreviously, you could only specify the From_ header by setting
- Xreply_to_hdr to a null value. Also, regardless of which header
- Xthe return path is gotten from, the "name" is always taken from
- Xthe From: header if it exists. The result is a To: line which
- Xcontains the user's name and address.
- X[Dan Heller]
- X---------
- XWhile composing a message, if new mail arrives, then you will be
- Xnotified accordingly and you may continue composing your letter.
- XThis does not happen if you are in an editor. This is not a feature
- Xwhich can be turned off.
- X[Dan Heller]
- X---------
- XThe day-of-week formatting parameter for the prompt formatting
- Xstring and the header formatting string ("prompt" and "hdr_format")
- Xhas changed from %D to %W altho the old method is still supported
- Xeven tho it's not documented.
- X[Dan Heller]
- X---------
- XA new formatting parameter for hdr_format: %i produces the message-id
- Xof the message in question. This is a header not produced by OLD_MAILER
- Xtype MTA's.
- X[Dan Heller]
- X---------
- Xconfig.h --a new macro HDRSIZ is available to redefine how large a
- Xmail message header can be. This was based on the fact that some
- Xsystems' BUFSIZ is not very large and that some To: headers can
- Xexceed that size. This resulted in a truncated reply list. HDRSIZ
- Xis defined to be BUFSIZ by default. It should *not* be redefined
- Xto a value less than BUFSIZ, but it can be increased.
- X[Dan Heller]
- X---------
- XMAX_HOST_NAMES define has gone away in config.h -- there is no more
- Xlimit on hostnames that your host can be called. By default, the
- Xhostname is the legal hostname the system thinks it is, and the
- Xrest of the names are set by various other sources. The user can
- Xadd to or override these names at any time.
- X[Dan Heller]
- X---------
- Xmakefile.x386 and makefile.x286 have gone away and replaced by
- Xmakefile.xenix. See the README and the makefile itself if you
- Xrun xenix.
- X[Dan Heller]
- X=========
- X
- END_OF_FILE
- if test 16322 -ne `wc -c <'README-6.4'`; then
- echo shar: \"'README-6.4'\" unpacked with wrong size!
- fi
- # end of 'README-6.4'
- fi
- if test -f 'check.pr' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'check.pr'\"
- else
- echo shar: Extracting \"'check.pr'\" \(240 characters\)
- sed "s/^X//" >'check.pr' <<'END_OF_FILE'
- X/* "@(#)check.pr 2.2 9/3/86 (Dan Heller)"; */
- X
- X/* Format_version=1, Width=16, Height=16, Depth=1, Valid_bits_per_item=16
- X */
- X 0x0000,0x0000,0x0001,0x0003,0x0007,0x000E,0x001C,0x0038,
- X 0xC070,0xE0E0,0x71C0,0x3B80,0x1F00,0x0E00,0x0400,0x0000
- END_OF_FILE
- if test 240 -ne `wc -c <'check.pr'`; then
- echo shar: \"'check.pr'\" unpacked with wrong size!
- fi
- # end of 'check.pr'
- fi
- if test -f 'coffee.cup.pr' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'coffee.cup.pr'\"
- else
- echo shar: Extracting \"'coffee.cup.pr'\" \(193 characters\)
- sed "s/^X//" >'coffee.cup.pr' <<'END_OF_FILE'
- X/* Format_version=1, Width=16, Height=16, Depth=1, Valid_bits_per_item=16
- X */
- X 0x0200,0x0100,0x0600,0x0800,0x0600,0x0100,0xFFF8,0x800C,
- X 0x800A,0x4012,0x401C,0x2020,0x9048,0x7FF0,0x3FE0,0x0000
- END_OF_FILE
- if test 193 -ne `wc -c <'coffee.cup.pr'`; then
- echo shar: \"'coffee.cup.pr'\" unpacked with wrong size!
- fi
- # end of 'coffee.cup.pr'
- fi
- if test -f 'cycle.pr' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'cycle.pr'\"
- else
- echo shar: Extracting \"'cycle.pr'\" \(241 characters\)
- sed "s/^X//" >'cycle.pr' <<'END_OF_FILE'
- X/* "@(#)cycle.pr 2.2 9/3/86 (Dan Heller)"; */
- X
- X/* Format_version=1, Width=16, Height=16, Depth=1, Valid_bits_per_item=16
- X */
- X 0x07C0,0x0FE0,0x1834,0x301C,0x601C,0x203C,0x0000,0x0000,
- X 0x7808,0x700C,0x7018,0x5830,0x0FE0,0x07C0,0x0000,0x0000
- X
- END_OF_FILE
- if test 241 -ne `wc -c <'cycle.pr'`; then
- echo shar: \"'cycle.pr'\" unpacked with wrong size!
- fi
- # end of 'cycle.pr'
- fi
- if test -f 'dn.arrow.pr' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'dn.arrow.pr'\"
- else
- echo shar: Extracting \"'dn.arrow.pr'\" \(243 characters\)
- sed "s/^X//" >'dn.arrow.pr' <<'END_OF_FILE'
- X/* "@(#)dn.arrow.pr 2.2 9/3/86 (Dan Heller)"; */
- X
- X/* Format_version=1, Width=16, Height=16, Depth=1, Valid_bits_per_item=16
- X */
- X 0xFFFF,0x8001,0xBFFD,0xBFFD,0xBFFD,0x9FF9,0x8FF1,0x87E1,
- X 0x83C1,0x8181,0xB825,0xA435,0xA42D,0xB825,0x8001,0xFFFF
- END_OF_FILE
- if test 243 -ne `wc -c <'dn.arrow.pr'`; then
- echo shar: \"'dn.arrow.pr'\" unpacked with wrong size!
- fi
- # end of 'dn.arrow.pr'
- fi
- if test -f 'envelope.pr' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'envelope.pr'\"
- else
- echo shar: Extracting \"'envelope.pr'\" \(247 characters\)
- sed "s/^X//" >'envelope.pr' <<'END_OF_FILE'
- X/* "@(#)envelope.cursor 2.2 9/3/86 (Dan Heller)"; */
- X
- X/* Format_version=1, Width=16, Height=16, Depth=1, Valid_bits_per_item=16
- X */
- X 0x0000,0x0000,0xFFFF,0xC003,0xA005,0x9009,0x8811,0x8421,
- X 0x8241,0x8181,0x8001,0x8001,0x8001,0xFFFF,0x0000,0x0000
- END_OF_FILE
- if test 247 -ne `wc -c <'envelope.pr'`; then
- echo shar: \"'envelope.pr'\" unpacked with wrong size!
- fi
- # end of 'envelope.pr'
- fi
- if test -f 'glasses.pr' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'glasses.pr'\"
- else
- echo shar: Extracting \"'glasses.pr'\" \(246 characters\)
- sed "s/^X//" >'glasses.pr' <<'END_OF_FILE'
- X/* "@(#)glasses.cursor 2.2 9/3/86 (Dan Heller)"; */
- X
- X/* Format_version=1, Width=16, Height=16, Depth=1, Valid_bits_per_item=16
- X */
- X 0x0000,0x0000,0x0C06,0x1209,0x1209,0x2211,0x2010,0x4020,
- X 0x4020,0x8C40,0xF3C0,0x8C40,0x8C40,0x8C40,0x7380,0x0000
- END_OF_FILE
- if test 246 -ne `wc -c <'glasses.pr'`; then
- echo shar: \"'glasses.pr'\" unpacked with wrong size!
- fi
- # end of 'glasses.pr'
- fi
- if test -f 'options.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'options.h'\"
- else
- echo shar: Extracting \"'options.h'\" \(1157 characters\)
- sed "s/^X//" >'options.h' <<'END_OF_FILE'
- X/* @(#)options.h (c) copyright 10/10/88 (Dan Heller, Bart Schaefer) */
- X
- X/* Must #include mush.h before #including this file */
- X
- X/* Structure to hold assorted information collected from command line flags.
- X * Other information is held in the following global variables:
- X * cmd_help General help file, specified by -1
- X * debug Debugging mode, toggled by -d
- X * glob_flags Bits set by -C, -e, -i, -S, -t and many commands
- X * hdrs_only Show headers and exit, specified by -H
- X * iscurses Curses mode, specified by -C or "curses" command
- X * istool Tool mode, specified by -t or -T
- X * mailfile File specified by -u or -f or "folder" command
- X * prog_name Name under which mush is running
- X * time_out Tool mode timeout, specified by -T
- X * tool_help Tool mode help file, specified by -2
- X */
- X
- Xstruct mush_flags {
- X u_long flg; /* Set by -v and some vars; passed to mail_someone() */
- X char *src_file; /* Set by -F */
- X int src_n_exit; /* Set by -F! */
- X char f_flags[10]; /* Set by -r, -N, etc.; passed to folder() */
- X char *Subj; /* Set by -s */
- X char *Cc; /* Set by -c */
- X char *Bcc; /* Set by -b */
- X int source_rc; /* Set by -n */
- X};
- END_OF_FILE
- if test 1157 -ne `wc -c <'options.h'`; then
- echo shar: \"'options.h'\" unpacked with wrong size!
- fi
- # end of 'options.h'
- fi
- if test -f 'up.arrow.pr' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'up.arrow.pr'\"
- else
- echo shar: Extracting \"'up.arrow.pr'\" \(243 characters\)
- sed "s/^X//" >'up.arrow.pr' <<'END_OF_FILE'
- X/* "@(#)up.arrow.pr 2.2 9/3/86 (Dan Heller)"; */
- X
- X/* Format_version=1, Width=16, Height=16, Depth=1, Valid_bits_per_item=16
- X */
- X 0xFFFF,0x8001,0xA439,0xA425,0xA439,0x9821,0x8181,0x83C1,
- X 0x87E1,0x8FF1,0x9FF9,0xBFFD,0xBFFD,0xBFFD,0x8001,0xFFFF
- END_OF_FILE
- if test 243 -ne `wc -c <'up.arrow.pr'`; then
- echo shar: \"'up.arrow.pr'\" unpacked with wrong size!
- fi
- # end of 'up.arrow.pr'
- fi
- if test -f 'write.pr' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'write.pr'\"
- else
- echo shar: Extracting \"'write.pr'\" \(244 characters\)
- sed "s/^X//" >'write.pr' <<'END_OF_FILE'
- X/* "@(#)write.cursor 2.2 9/3/86 (Dan Heller)"; */
- X
- X/* Format_version=1, Width=16, Height=16, Depth=1, Valid_bits_per_item=16
- X */
- X 0x0018,0x002C,0x0056,0x00A4,0x0148,0x0290,0x0520,0x0A40,
- X 0x1080,0x2100,0x4200,0xE400,0xE800,0xF000,0xE000,0x0000
- END_OF_FILE
- if test 244 -ne `wc -c <'write.pr'`; then
- echo shar: \"'write.pr'\" unpacked with wrong size!
- fi
- # end of 'write.pr'
- fi
- echo shar: End of archive 1 \(of 19\).
- cp /dev/null ark1isdone
- MISSING=""
- for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 19 archives.
- rm -f ark[1-9]isdone ark[1-9][0-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
-